home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2007 January
/
PCWorld_2007-01_cd.bin
/
v cisle
/
hotkey
/
AutoHotkey104504_Install.exe
/
Extras
/
Generate TextPad.ahk
< prev
next >
Wrap
Text File
|
2005-02-22
|
4KB
|
154 lines
;___________________________________________
; TextPad Syntax Generator Script
; -Rajat
;___________________________________________
SetBatchLines, -1 ; Speeds up file operations.
SetWorkingDir, ..\.. ; Set it to the Editors folder.
TargetFile = TextPad\AutoHotkey.syn
FileDelete, %TargetFile%
FileAppend, `; TextPad keyword syntax file for AutoHotkey`n, %TargetFile%
FileAppend, `; Auto generated by Rajat's TextPad Syntax Generator Script`n`n, %TargetFile%
FileAppend, C=1`n`n, %TargetFile%
FileAppend, [Syntax]`n, %TargetFile%
FileAppend, Namespace1 =`n, %TargetFile%
FileAppend, IgnoreCase = Yes`n, %TargetFile%
FileAppend, `;BracketChars = {}`n, %TargetFile%
FileAppend, OperatorChars = +-*/<>=`n, %TargetFile%
FileAppend, PreprocStart =`n, %TargetFile%
FileAppend, SyntaxStart =`n, %TargetFile%
FileAppend, SyntaxEnd =`n, %TargetFile%
FileAppend, CommentStart = /*`n, %TargetFile%
FileAppend, CommentEnd = */`n, %TargetFile%
FileAppend, CommentStartAlt =`n, %TargetFile%
FileAppend, CommentEndAlt =`n, %TargetFile%
FileAppend, SingleComment = `;`n, %TargetFile%
; Not desirable because it prevents comments on the same line as a command from being highlighted as a comment:
;FileAppend, SingleCommentCol = Leading`n, %TargetFile%
FileAppend, SingleCommentEsc = ```n, %TargetFile%
FileAppend, StringsSpanLines = No`n, %TargetFile%
FileAppend, StringStart = `%`n, %TargetFile%
FileAppend, StringEnd = `%`n, %TargetFile%
FileAppend, StringAlt = "`n, %TargetFile%
FileAppend, StringEsc = ```n, %TargetFile%
FileAppend, CharStart =`n, %TargetFile%
FileAppend, CharEnd =`n, %TargetFile%
FileAppend, CharEsc = ```n, %TargetFile%
FileAppend, `n, %TargetFile%
FileAppend, [Keywords 1]`n, %TargetFile%
;this doesn't require fancy cmd names for human reading,
;it just requires names to be highlighted. so getting first name only
Loop, Read, Syntax\Commands.txt, %TargetFile%
{
CurrCmd =
FullCmd = %a_loopreadline%
;directives don't have first comma but a first space
;so whichever is first, take it as end of cmd name
StringGetPos, cPos, a_loopreadline, `,
StringGetPos, sPos, a_loopreadline, %A_Space%
IfLess, sPos, %cPos%
IfGreater, sPos, 0
StringLeft, CurrCmd, a_loopreadline, %sPos%
IfLess, cPos, %sPos%
IfGreater, cPos, 0
StringLeft, CurrCmd, a_loopreadline, %cPos%
IfLess, cPos, %sPos%
IfLess, cPos, 0
StringLeft, CurrCmd, a_loopreadline, %sPos%
IfLess, sPos, %cPos%
IfLess, sPos, 0
StringLeft, CurrCmd, a_loopreadline, %cPos%
StringReplace, FullCmd, FullCmd, ``n, `n, a
StringReplace, FullCmd, FullCmd, ``t, `t, a
StringReplace, CurrCmd, CurrCmd, [,, a
StringReplace, CurrCmd, CurrCmd, %a_space%,, a
;For a directive that has no parameters
IfEqual, CurrCmd,
CurrCmd = %a_loopreadline%
;this check removes duplicates for loop and if
IfNotEqual, CurrCmd, %LastCmd%
FileAppend, %CurrCmd%`n
LastCmd = %CurrCmd%
}
FileAppend, `n[Keywords 2]`n, %TargetFile%
;Adding keywords including the blank lines and comments
Loop, Read, Syntax\Keywords.txt, %TargetFile%
FileAppend, %A_LoopReadLine%`n
FileAppend, `n`n, %TargetFile%
;same with variables
Loop, Read, Syntax\Variables.txt, %TargetFile%
FileAppend, %A_LoopReadLine%`n
FileAppend, `n[Keywords 3]`n, %TargetFile%
;keys are added with and without {}
Loop, Read, Syntax\Keys.txt, %TargetFile%
{
FileAppend, %A_LoopReadLine%`n
IfEqual, A_LoopReadLine,, Continue
;comment check
StringReplace, check, A_LoopReadLine, %A_Space%,, A
StringReplace, check, check, %A_Tab%,, A
StringLeft, check, check, 1
IfEqual, check, `;, Continue
FileAppend, {%A_LoopReadLine%}`n
}
;Now generating the ClipLibrary
TargetFile = TextPad\AutoHotkey.tcl
FileDelete, %TargetFile%
FileAppend, !TCL=3468`, Auto-generated by Rajat's TextPad Syntax Generator Script`n, %TargetFile%
FileAppend, !TITLE=AutoHotkey`n, %TargetFile%
FileAppend, !SORT=Y`n, %TargetFile%
;adding commands
Loop, Read, Syntax\Commands.txt, %TargetFile%
{
FileReadLine, CmdName, Syntax\CommandNames.txt, %A_Index%
StringReplace, FullCmd, A_LoopReadLine, ``n, `n, a
StringReplace, FullCmd, FullCmd, ``t, %A_Tab%, a
FileAppend, !TEXT=%CmdName%`n%FullCmd%`n!`n
}
;adding variables
Loop, Read, Syntax\Variables.txt, %TargetFile%
FileAppend, !TEXT=%A_LoopReadLine%`n%A_LoopReadLine%`n!`n